﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Volo.Abp;
using Volo.Abp.Domain.Entities.Auditing;
using Volo.Abp.MultiTenancy;

namespace BaseService.BaseData
{
    public class Menu : AuditedAggregateRoot<Guid>, ISoftDelete, IMultiTenant
    {
        /// <summary>
        /// 
        /// </summary>
        public int MenuId { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public string MenuName { get; set; }
        /// <summary>
        /// 用户管理
        /// </summary>
        public string Title { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public string Icon { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public string Path { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public string Paths { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public string MenuType { get; set; }
        /// <summary>
        /// 无
        /// </summary>
        public string Action { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public string Permission { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public int ParentId { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public string NoCache { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public string Breadcrumb { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public string Component { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public int Sort { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public string Visible { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public string CreateBy { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public string UpdateBy { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public string IsFrame { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public string DataScope { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public string Params { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public string RoleId { get; set; }
        /// <summary>
        /// 
        /// </summary>
        //public List<Menu> children { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public string Is_select { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public string CreatedAt { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public string UpdatedAt { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public string DeletedAt { get; set; }

        public Guid? TenantId { get; set; }
        public bool IsDeleted { get; set; }
        public Menu(
            Guid id,
            Guid? tenantId,
            int menuId,
            string menuName,
            string title,
            string icon,
            string path,
            string paths,
            string menuType,
            string action,
            string permission,
            int parentId,
            string noCache,
            string breadcrumb,
            string component,
            int sort,
            string visible,
            string createBy,
            string updateBy,
            string isFrame,
            string dataScope,
            string @params,
            string roleId,
            //List<Menu> children,
            string is_select,
            string createdAt,
            string updatedAt,
            string deletedAt
        ) : base(id)
        {
            Id = id;
            TenantId = tenantId;
            MenuId = menuId;
            MenuName = menuName;
            Title = title;
            Icon = icon;
            Path = path;
            Paths = paths;
            MenuType = menuType;
            Action = action;
            Permission = permission;
            ParentId = parentId;
            NoCache = noCache;
            Breadcrumb = breadcrumb;
            Component = component;
            Sort = sort;
            Visible = visible;
            CreateBy = createBy;
            UpdateBy = updateBy;
            IsFrame = isFrame;
            DataScope = dataScope;
            Params = @params;
            RoleId = roleId;
            //children = children;
            Is_select = is_select;
            CreatedAt = createdAt;
            UpdatedAt = updatedAt;
            DeletedAt = deletedAt;
        }
    }

}
